unit u_dm_prescritor;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, u_dm_padrao, FMTBcd, DB, DBClient, Provider, SqlExpr;

type
  Tdm_prescritor = class(Tdm_padrao)
    cdsConsultaCOD_PRESCRITOR: TIntegerField;
    cdsConsultaLIG_COD_GRUPO: TIntegerField;
    cdsConsultaLIG_COD_PROFISSAO: TIntegerField;
    cdsConsultaDESCRICAO: TStringField;
    cdsConsultaREGISTRO_NUM: TIntegerField;
    cdsConsultaREGISTRO_UF: TStringField;
    cdsConsultaSEXO: TStringField;
    cdsConsultaDATA_NASC: TDateField;
    cdsConsultaVISITACAO: TStringField;
    cdsConsultaCPF_CNPJ: TStringField;
    cdsConsultaTEL_RESIDENCIAL: TStringField;
    cdsConsultaTEL_COMERCIAL: TStringField;
    cdsConsultaTEL_CELULAR: TStringField;
    cdsConsultaTEL_FAX: TStringField;
    cdsConsultaESTADO_CIVIL: TStringField;
    cdsConsultaCONJUGE_NOME: TStringField;
    cdsConsultaCONJUGE_DATA_NASC: TDateField;
    cdsConsultaPERC_DESCONTO: TFMTBCDField;
    cdsConsultaPERC_ACRESCIMO: TFMTBCDField;
    cdsConsultaSITUACAO: TStringField;
    cdsConsultaDATA_CAD: TDateField;
    cdsConsultaDATA_ALTERACAO: TDateField;
    cdsConsultaVISITACAO_DESC: TStringField;
    cdsConsultaSITUACAO_DESC: TStringField;
    cdsConsultaGRUPO: TStringField;
    cdsConsultaPROFISSAO: TStringField;
    cdsRegistroCOD_PRESCRITOR: TIntegerField;
    cdsRegistroLIG_COD_GRUPO: TIntegerField;
    cdsRegistroLIG_COD_PROFISSAO: TIntegerField;
    cdsRegistroDESCRICAO: TStringField;
    cdsRegistroREGISTRO_NUM: TIntegerField;
    cdsRegistroREGISTRO_UF: TStringField;
    cdsRegistroSEXO: TStringField;
    cdsRegistroDATA_NASC: TDateField;
    cdsRegistroVISITACAO: TStringField;
    cdsRegistroCPF_CNPJ: TStringField;
    cdsRegistroTEL_RESIDENCIAL: TStringField;
    cdsRegistroTEL_COMERCIAL: TStringField;
    cdsRegistroTEL_CELULAR: TStringField;
    cdsRegistroTEL_FAX: TStringField;
    cdsRegistroESTADO_CIVIL: TStringField;
    cdsRegistroCONJUGE_NOME: TStringField;
    cdsRegistroCONJUGE_DATA_NASC: TDateField;
    cdsRegistroPERC_DESCONTO: TFMTBCDField;
    cdsRegistroPERC_ACRESCIMO: TFMTBCDField;
    cdsRegistroSITUACAO: TStringField;
    cdsRegistroDATA_CAD: TDateField;
    cdsRegistroDATA_ALTERACAO: TDateField;
    cdsConsultaPROFISSAO_CONSELHO: TStringField;
    cdsConsultaEMAIL_PRINCIPAL: TStringField;
    cdsConsultaEMAIL_SECUNDARIO: TStringField;
    cdsRegistroEMAIL_PRINCIPAL: TStringField;
    cdsRegistroEMAIL_SECUNDARIO: TStringField;
    sqlTipoEndereco: TSQLQuery;
    dspTipoEndereco: TDataSetProvider;
    cdsTipoEndereco: TClientDataSet;
    dsMestre_Detalhe: TDataSource;
    sqlPrescritorEndereco: TSQLQuery;
    cdsPrescritorEndereco: TClientDataSet;
    sqlPrescritorEnderecoCOD_ENDERECO: TIntegerField;
    sqlPrescritorEnderecoLIG_COD_PRESCRITOR: TIntegerField;
    sqlPrescritorEnderecoLIG_COD_TIPO_ENDERECO: TIntegerField;
    sqlPrescritorEnderecoCEP: TStringField;
    sqlPrescritorEnderecoENDERECO: TStringField;
    sqlPrescritorEnderecoNUMERO: TStringField;
    sqlPrescritorEnderecoCOMPLEMENTO: TStringField;
    sqlPrescritorEnderecoBAIRRO: TStringField;
    sqlPrescritorEnderecoLOCALIDADE: TStringField;
    sqlPrescritorEnderecoUF: TStringField;
    sqlPrescritorEnderecoDATA_CAD: TDateField;
    sqlPrescritorEnderecoDATA_ALTERACAO: TDateField;
    sqlPrescritorEnderecoTIPO_ENDERECO: TStringField;
    cdsRegistrosqlPrescritorEndereco: TDataSetField;
    cdsPrescritorEnderecoCOD_ENDERECO: TIntegerField;
    cdsPrescritorEnderecoLIG_COD_PRESCRITOR: TIntegerField;
    cdsPrescritorEnderecoLIG_COD_TIPO_ENDERECO: TIntegerField;
    cdsPrescritorEnderecoCEP: TStringField;
    cdsPrescritorEnderecoENDERECO: TStringField;
    cdsPrescritorEnderecoNUMERO: TStringField;
    cdsPrescritorEnderecoCOMPLEMENTO: TStringField;
    cdsPrescritorEnderecoBAIRRO: TStringField;
    cdsPrescritorEnderecoLOCALIDADE: TStringField;
    cdsPrescritorEnderecoUF: TStringField;
    cdsPrescritorEnderecoDATA_CAD: TDateField;
    cdsPrescritorEnderecoDATA_ALTERACAO: TDateField;
    cdsPrescritorEnderecoTIPO_ENDERECO: TStringField;
    qryPKEndereco: TSQLQuery;
    qryPKEnderecoGEN_ID: TFMTBCDField;
    cdsAuxEndereco: TClientDataSet;
    cdsAuxEnderecoLIG_COD_TIPOENDERECO: TIntegerField;
    cdsAuxEnderecoTIPO_ENDERECO: TStringField;
    cdsAuxEnderecoCEP: TStringField;
    cdsAuxEnderecoENDERECO: TStringField;
    cdsAuxEnderecoNUMERO: TStringField;
    cdsAuxEnderecoCOMPLEMENTO: TStringField;
    cdsAuxEnderecoBAIRRO: TStringField;
    cdsAuxEnderecoLOCALIDADE: TStringField;
    cdsAuxEnderecoUF: TStringField;
    dsMestre_Detalhe_Consulta: TDataSource;
    sqlConsultaEndereco: TSQLQuery;
    cdsConsultaEndereco: TClientDataSet;
    sqlConsultaEnderecoCOD_ENDERECO: TIntegerField;
    sqlConsultaEnderecoLIG_COD_PRESCRITOR: TIntegerField;
    sqlConsultaEnderecoLIG_COD_TIPO_ENDERECO: TIntegerField;
    sqlConsultaEnderecoCEP: TStringField;
    sqlConsultaEnderecoENDERECO: TStringField;
    sqlConsultaEnderecoNUMERO: TStringField;
    sqlConsultaEnderecoCOMPLEMENTO: TStringField;
    sqlConsultaEnderecoBAIRRO: TStringField;
    sqlConsultaEnderecoLOCALIDADE: TStringField;
    sqlConsultaEnderecoUF: TStringField;
    sqlConsultaEnderecoDATA_CAD: TDateField;
    sqlConsultaEnderecoDATA_ALTERACAO: TDateField;
    sqlConsultaEnderecoTIPO_ENDERECO: TStringField;
    cdsConsultasqlConsultaEndereco: TDataSetField;
    cdsConsultaEnderecoCOD_ENDERECO: TIntegerField;
    cdsConsultaEnderecoLIG_COD_PRESCRITOR: TIntegerField;
    cdsConsultaEnderecoLIG_COD_TIPO_ENDERECO: TIntegerField;
    cdsConsultaEnderecoCEP: TStringField;
    cdsConsultaEnderecoENDERECO: TStringField;
    cdsConsultaEnderecoNUMERO: TStringField;
    cdsConsultaEnderecoCOMPLEMENTO: TStringField;
    cdsConsultaEnderecoBAIRRO: TStringField;
    cdsConsultaEnderecoLOCALIDADE: TStringField;
    cdsConsultaEnderecoUF: TStringField;
    cdsConsultaEnderecoDATA_CAD: TDateField;
    cdsConsultaEnderecoDATA_ALTERACAO: TDateField;
    cdsConsultaEnderecoTIPO_ENDERECO: TStringField;
    sqlEspecialidade: TSQLQuery;
    cdsEspecialidade: TClientDataSet;
    dspEspecialidade: TDataSetProvider;
    cdsEspecialidadeCOD_ESPECIALIDADE: TIntegerField;
    cdsEspecialidadeDESCRICAO: TStringField;
    sqlConsultaEspec: TSQLQuery;
    cdsConsultaEspec: TClientDataSet;
    sqlConsultaEspecLIG_COD_PRESCRITOR: TIntegerField;
    sqlConsultaEspecLIG_COD_ESPECIALIDADE: TIntegerField;
    sqlConsultaEspecDESCRICAO: TStringField;
    cdsConsultaEspecLIG_COD_PRESCRITOR: TIntegerField;
    cdsConsultaEspecLIG_COD_ESPECIALIDADE: TIntegerField;
    cdsConsultaEspecDESCRICAO: TStringField;
    spInserirEspecialidade: TSQLStoredProc;
    spRemoverEspecialidade: TSQLStoredProc;
    sqlConsultaSec: TSQLQuery;
    cdsConsultaSec: TClientDataSet;
    sqlConsultaEspecSITUACAO_DESC: TStringField;
    cdsConsultasqlConsultaEspec: TDataSetField;
    cdsConsultaEspecSITUACAO_DESC: TStringField;
    sqlConsultaSecCOD_SECRETARIA: TIntegerField;
    sqlConsultaSecDESCRICAO: TStringField;
    sqlConsultaSecTEL_COMERCIAL: TStringField;
    sqlConsultaSecTEL_CELULAR: TStringField;
    sqlConsultaSecEMAIL: TStringField;
    sqlConsultaSecSITUACAO_DESC: TStringField;
    cdsConsultaSecCOD_SECRETARIA: TIntegerField;
    cdsConsultaSecDESCRICAO: TStringField;
    cdsConsultaSecTEL_COMERCIAL: TStringField;
    cdsConsultaSecTEL_CELULAR: TStringField;
    cdsConsultaSecEMAIL: TStringField;
    cdsConsultaSecSITUACAO_DESC: TStringField;
    sqlConsultaSecSITUACAO: TStringField;
    cdsConsultasqlConsultaSec: TDataSetField;
    cdsConsultaSecSITUACAO: TStringField;
    cdsRegistroOBS: TStringField;
    cdsConsultaOBS: TStringField;
    sqlConsultaOBS: TSQLQuery;
    cdsConsultaObservacao: TClientDataSet;
    sqlConsultaOBSCOD_OBS: TIntegerField;
    sqlConsultaOBSLIG_COD_PRESCRITOR: TIntegerField;
    sqlConsultaOBSLIG_COD_TIPO_OBS: TIntegerField;
    sqlConsultaOBSDESCRICAO: TStringField;
    sqlConsultaOBSMOSTRA_FICHA: TStringField;
    sqlConsultaOBSMOSTRA_TELA: TStringField;
    sqlConsultaOBSMOSTRA_RECEITA: TStringField;
    sqlConsultaOBSDATA_CAD: TDateField;
    sqlConsultaOBSDATA_ALTERACAO: TDateField;
    sqlConsultaOBSTIPO_OBS: TStringField;
    sqlConsultaOBSMOSTRA_FICHA_DESC: TStringField;
    sqlConsultaOBSMOSTRA_TELA_DESC: TStringField;
    sqlConsultaOBSMOSTRA_RECEITA_DESC: TStringField;
    cdsConsultasqlConsultaOBS: TDataSetField;
    cdsConsultaObservacaoCOD_OBS: TIntegerField;
    cdsConsultaObservacaoLIG_COD_PRESCRITOR: TIntegerField;
    cdsConsultaObservacaoLIG_COD_TIPO_OBS: TIntegerField;
    cdsConsultaObservacaoDESCRICAO: TStringField;
    cdsConsultaObservacaoMOSTRA_FICHA: TStringField;
    cdsConsultaObservacaoMOSTRA_TELA: TStringField;
    cdsConsultaObservacaoMOSTRA_RECEITA: TStringField;
    cdsConsultaObservacaoDATA_CAD: TDateField;
    cdsConsultaObservacaoDATA_ALTERACAO: TDateField;
    cdsConsultaObservacaoTIPO_OBS: TStringField;
    cdsConsultaObservacaoMOSTRA_FICHA_DESC: TStringField;
    cdsConsultaObservacaoMOSTRA_TELA_DESC: TStringField;
    cdsConsultaObservacaoMOSTRA_RECEITA_DESC: TStringField;
    sqlPrescritorNotificacao: TSQLQuery;
    cdsPrescritorNotificacao: TClientDataSet;
    sqlPrescritorNotificacaoCOD_NOTIFICACAO: TIntegerField;
    sqlPrescritorNotificacaoLIG_COD_PRESCRITOR: TIntegerField;
    sqlPrescritorNotificacaoTALAO_NUM_INICIAL: TIntegerField;
    sqlPrescritorNotificacaoTALAO_NUM_FINAL: TIntegerField;
    sqlPrescritorNotificacaoDATA_EXTRAVIO: TDateField;
    sqlPrescritorNotificacaoMOTIVO: TStringField;
    sqlPrescritorNotificacaoDATA_CAD: TDateField;
    sqlPrescritorNotificacaoDATA_ALTERACAO: TDateField;
    cdsRegistrosqlPrescritorNotificacao: TDataSetField;
    cdsPrescritorNotificacaoCOD_NOTIFICACAO: TIntegerField;
    cdsPrescritorNotificacaoLIG_COD_PRESCRITOR: TIntegerField;
    cdsPrescritorNotificacaoTALAO_NUM_INICIAL: TIntegerField;
    cdsPrescritorNotificacaoTALAO_NUM_FINAL: TIntegerField;
    cdsPrescritorNotificacaoDATA_EXTRAVIO: TDateField;
    cdsPrescritorNotificacaoMOTIVO: TStringField;
    cdsPrescritorNotificacaoDATA_CAD: TDateField;
    cdsPrescritorNotificacaoDATA_ALTERACAO: TDateField;
    cdsAuxNotificacao: TClientDataSet;
    sqlConsultaNotificacao: TSQLQuery;
    cdsConsultaNotificacao: TClientDataSet;
    sqlConsultaNotificacaoCOD_NOTIFICACAO: TIntegerField;
    sqlConsultaNotificacaoLIG_COD_PRESCRITOR: TIntegerField;
    sqlConsultaNotificacaoTALAO_NUM_INICIAL: TIntegerField;
    sqlConsultaNotificacaoTALAO_NUM_FINAL: TIntegerField;
    sqlConsultaNotificacaoDATA_EXTRAVIO: TDateField;
    sqlConsultaNotificacaoMOTIVO: TStringField;
    sqlConsultaNotificacaoDATA_CAD: TDateField;
    sqlConsultaNotificacaoDATA_ALTERACAO: TDateField;
    cdsConsultasqlConsultaNotificacao: TDataSetField;
    cdsConsultaNotificacaoCOD_NOTIFICACAO: TIntegerField;
    cdsConsultaNotificacaoLIG_COD_PRESCRITOR: TIntegerField;
    cdsConsultaNotificacaoTALAO_NUM_INICIAL: TIntegerField;
    cdsConsultaNotificacaoTALAO_NUM_FINAL: TIntegerField;
    cdsConsultaNotificacaoDATA_EXTRAVIO: TDateField;
    cdsConsultaNotificacaoMOTIVO: TStringField;
    cdsConsultaNotificacaoDATA_CAD: TDateField;
    cdsConsultaNotificacaoDATA_ALTERACAO: TDateField;
    cdsAuxNotificacaoLIG_COD_PRESCRITOR: TIntegerField;
    cdsAuxNotificacaoTALAO_NUM_INICIAL: TIntegerField;
    cdsAuxNotificacaoTALAO_NUM_FINAL: TIntegerField;
    cdsAuxNotificacaoDATA_EXTRAVIO: TDateField;
    cdsAuxNotificacaoMOTIVO: TStringField;
    qryPKNotificacao: TSQLQuery;
    qryPKNotificacaoGEN_ID: TFMTBCDField;

  private

  public
    function ListaTipoEndereco: boolean;
    procedure RemoverNotificacao;
    procedure RemoverEndereco;
    procedure RemoverNotificacaoTodos;
    procedure RemoverEnderecoTodos;
    procedure InserirListaNotificacao;
    procedure InserirListaEndereco;
    procedure InserirEndereco(CodTipoEnd: Integer; TipoEnd, CEP, Endereco,
      Numero, Complemento, Bairro, Localidade, UF: String);
    procedure InserirNotificacao(NumInicial, NumFinal: integer; DataExtravio: Tdate; Motivo: string);
    procedure InserirEspecialidade(CodPrescritor,CodEspecialidade: integer);
    procedure RemoverEspecialidade(CodPrescritor: integer);
  end;

var
  dm_prescritor: Tdm_prescritor;

implementation

uses u_dm_geral;

{$R *.dfm}

function Tdm_prescritor.ListaTipoEndereco:boolean;
begin
  Screen.Cursor := crSQLWait;
  cdsTipoEndereco.Close;
  cdsTipoEndereco.Open;
  Screen.Cursor := crDefault;
  if cdsTipoEndereco.IsEmpty then Result := false else Result := true;
end;

procedure Tdm_prescritor.InserirEndereco(CodTipoEnd:Integer; TipoEnd,CEP,Endereco,Numero,Complemento,Bairro,Localidade,UF:String);
begin
  if cdsRegistro.State in [dsInsert] then
  begin
    cdsAuxEndereco.Open;
    cdsAuxEndereco.Append;
    cdsAuxEnderecoLIG_COD_TIPOENDERECO.AsInteger := CodTipoEnd;
    cdsAuxEnderecoTIPO_ENDERECO.AsString         := TipoEnd;
    cdsAuxEnderecoCEP.AsString                   := CEP;
    cdsAuxEnderecoENDERECO.AsString              := Endereco;
    cdsAuxEnderecoNUMERO.AsString                := Numero;
    cdsAuxEnderecoCOMPLEMENTO.AsString           := Complemento;
    cdsAuxEnderecoBAIRRO.AsString                := Bairro;
    cdsAuxEnderecoLOCALIDADE.AsString            := Localidade;
    cdsAuxEnderecoUF.AsString                    := UF;
    cdsAuxEndereco.Post;
  end;
  if cdsRegistro.State in [dsEdit] then
  begin
    qryPKEndereco.Open;
    cdsPrescritorEndereco.Open;
    cdsPrescritorEndereco.Append;
    cdsPrescritorEnderecoCOD_ENDERECO.AsInteger          := qryPKEnderecoGEN_ID.AsInteger;
    cdsPrescritorEnderecoLIG_COD_PRESCRITOR.AsInteger    := cdsRegistroCOD_PRESCRITOR.AsInteger;
    cdsPrescritorEnderecoLIG_COD_TIPO_ENDERECO.AsInteger := CodTipoEnd;
    cdsPrescritorEnderecoTIPO_ENDERECO.AsString          := TipoEnd;
    cdsPrescritorEnderecoCEP.AsString                    := CEP;
    cdsPrescritorEnderecoENDERECO.AsString               := Endereco;
    cdsPrescritorEnderecoNUMERO.AsString                 := Numero;
    cdsPrescritorEnderecoCOMPLEMENTO.AsString            := Complemento;
    cdsPrescritorEnderecoBAIRRO.AsString                 := Bairro;
    cdsPrescritorEnderecoLOCALIDADE.AsString             := Localidade;
    cdsPrescritorEnderecoUF.AsString                     := UF;
    cdsPrescritorEnderecoDATA_ALTERACAO.AsDateTime       := Date;
    cdsPrescritorEndereco.Post;
    qryPKEndereco.Close;
  end;
end;

procedure Tdm_prescritor.InserirListaEndereco;
begin
  cdsAuxEndereco.First;
  while not cdsAuxEndereco.Eof do
  begin
    qryPKEndereco.Open;
    cdsPrescritorEndereco.Open;
    cdsPrescritorEndereco.Append;
    cdsPrescritorEnderecoCOD_ENDERECO.AsInteger          := qryPKEnderecoGEN_ID.AsInteger;
    cdsPrescritorEnderecoLIG_COD_PRESCRITOR.AsInteger    := Identificador;
    cdsPrescritorEnderecoLIG_COD_TIPO_ENDERECO.AsInteger := cdsAuxEnderecoLIG_COD_TIPOENDERECO.AsInteger;
    cdsPrescritorEnderecoCEP.AsString                    := cdsAuxEnderecoCEP.AsString;
    cdsPrescritorEnderecoENDERECO.AsString               := cdsAuxEnderecoENDERECO.AsString;
    cdsPrescritorEnderecoNUMERO.AsString                 := cdsAuxEnderecoNUMERO.AsString;
    cdsPrescritorEnderecoCOMPLEMENTO.AsString            := cdsAuxEnderecoCOMPLEMENTO.AsString;
    cdsPrescritorEnderecoBAIRRO.AsString                 := cdsAuxEnderecoBAIRRO.AsString;
    cdsPrescritorEnderecoLOCALIDADE.AsString             := cdsAuxEnderecoLOCALIDADE.AsString;
    cdsPrescritorEnderecoUF.AsString                     := cdsAuxEnderecoUF.AsString;
    cdsPrescritorEndereco.Post;
    qryPKEndereco.Close;
    cdsAuxEndereco.Next;
  end;
end;

procedure Tdm_prescritor.InserirListaNotificacao;
begin
  cdsAuxNotificacao.First;
  while not cdsAuxNotificacao.Eof do
  begin
    qryPKNotificacao.Open;
    cdsPrescritorNotificacao.Open;
    cdsPrescritorNotificacao.Append;
    cdsPrescritorNotificacaoCOD_NOTIFICACAO.AsInteger    := qryPKNotificacaoGEN_ID.AsInteger;
    cdsPrescritorNotificacaoLIG_COD_PRESCRITOR.AsInteger := Identificador;
    cdsPrescritorNotificacaoTALAO_NUM_INICIAL.AsInteger  := cdsAuxNotificacaoTALAO_NUM_INICIAL.AsInteger;
    cdsPrescritorNotificacaoTALAO_NUM_FINAL.AsInteger    := cdsAuxNotificacaoTALAO_NUM_FINAL.AsInteger;
    cdsPrescritorNotificacaoDATA_EXTRAVIO.AsDateTime     := cdsAuxNotificacaoDATA_EXTRAVIO.AsDateTime;
    cdsPrescritorNotificacaoMOTIVO.AsString              := cdsAuxNotificacaoMOTIVO.AsString;
    cdsPrescritorNotificacao.Post;
    qryPKNotificacao.Close;
    cdsAuxNotificacao.Next;
  end;
end;

procedure Tdm_prescritor.RemoverEndereco;
begin
  if ((cdsRegistro.State in [dsInsert]) and (not cdsAuxEndereco.IsEmpty))        then cdsAuxEndereco.Delete;
  if ((cdsRegistro.State in [dsEdit])   and (not cdsPrescritorEndereco.IsEmpty)) then cdsPrescritorEndereco.Delete;
end;

procedure Tdm_prescritor.RemoverNotificacao;
begin
  if ((cdsRegistro.State in [dsInsert]) and (not cdsAuxNotificacao.IsEmpty))        then cdsAuxNotificacao.Delete;
  if ((cdsRegistro.State in [dsEdit])   and (not cdsPrescritorNotificacao.IsEmpty)) then cdsPrescritorNotificacao.Delete;
end;

procedure Tdm_prescritor.RemoverEnderecoTodos;
begin
  if cdsRegistro.State in [dsInsert] then
  begin
    cdsAuxEndereco.First;
    while not cdsAuxEndereco.Eof do
    begin
      cdsAuxEndereco.Delete;
      cdsAuxEndereco.Next;
    end;
    if not cdsAuxEndereco.IsEmpty then cdsAuxEndereco.Delete;
  end;
  if cdsRegistro.State in [dsEdit] then
  begin
    cdsPrescritorEndereco.First;
    while not cdsPrescritorEndereco.Eof do
    begin
      cdsPrescritorEndereco.Delete;
      cdsPrescritorEndereco.Next;
    end;
    if not cdsPrescritorEndereco.IsEmpty then cdsPrescritorEndereco.Delete;
  end;
end;

procedure Tdm_prescritor.RemoverNotificacaoTodos;
begin
  if cdsRegistro.State in [dsInsert] then
  begin
    cdsAuxNotificacao.First;
    while not cdsAuxNotificacao.Eof do
    begin
      cdsAuxNotificacao.Delete;
      cdsAuxNotificacao.Next;
    end;
    if not cdsAuxNotificacao.IsEmpty then cdsAuxNotificacao.Delete;
  end;
  if cdsRegistro.State in [dsEdit] then
  begin
    cdsPrescritorNotificacao.First;
    while not cdsPrescritorNotificacao.Eof do
    begin
      cdsPrescritorNotificacao.Delete;
      cdsPrescritorNotificacao.Next;
    end;
    if not cdsPrescritorNotificacao.IsEmpty then cdsPrescritorNotificacao.Delete;
  end;
end;

procedure Tdm_prescritor.InserirEspecialidade(CodPrescritor,CodEspecialidade: integer);
begin
  spInserirEspecialidade.Params[0].AsInteger := CodPrescritor;
  spInserirEspecialidade.Params[1].AsInteger := CodEspecialidade;
  spInserirEspecialidade.ExecProc;
end;

procedure Tdm_prescritor.RemoverEspecialidade(CodPrescritor: integer);
begin
  spRemoverEspecialidade.Params[0].AsInteger := CodPrescritor;
  spRemoverEspecialidade.ExecProc;
end;

procedure Tdm_prescritor.InserirNotificacao(NumInicial,NumFinal:integer; DataExtravio:Tdate; Motivo: string);
begin
  if cdsRegistro.State in [dsInsert] then
  begin
    cdsAuxNotificacao.Open;
    cdsAuxNotificacao.Append;
    cdsAuxNotificacaoTALAO_NUM_INICIAL.AsInteger := NumInicial;
    cdsAuxNotificacaoTALAO_NUM_FINAL.AsInteger   := NumFinal;
    cdsAuxNotificacaoDATA_EXTRAVIO.AsDateTime    := DataExtravio;
    cdsAuxNotificacaoMOTIVO.AsString             := Motivo;
    cdsAuxNotificacao.Post;
  end;
  if cdsRegistro.State in [dsEdit] then
  begin
    qryPKNotificacao.Open;
    cdsPrescritorNotificacao.Open;
    cdsPrescritorNotificacao.Append;
    cdsPrescritorNotificacaoCOD_NOTIFICACAO.AsInteger    := qryPKNotificacaoGEN_ID.AsInteger;
    cdsPrescritorNotificacaoLIG_COD_PRESCRITOR.AsInteger := cdsRegistroCOD_PRESCRITOR.AsInteger;
    cdsPrescritorNotificacaoTALAO_NUM_INICIAL.AsInteger  := NumInicial;
    cdsPrescritorNotificacaoTALAO_NUM_FINAL.AsInteger    := NumFinal;
    cdsPrescritorNotificacaoDATA_EXTRAVIO.AsDateTime     := DataExtravio;
    cdsPrescritorNotificacaoMOTIVO.AsString              := Motivo;
    cdsPrescritorNotificacaoDATA_ALTERACAO.AsDateTime    := Date;
    cdsPrescritorNotificacao.Post;
    qryPKNotificacao.Close;
  end;
end;



end.
